/*
循环主要分为for循环和while循环，while循环还附带一个do while循环
1、for循环：
    适用于已知循环次数的情况，比如说已知需要执行10次然后停止的情况
    for(int i = 0; i++ ; i <=10)
        {
            //do something
        }
这样for循环内部的内容会被执行10次，直到i自增到10为止

2、while循环：
    适用于未知循环次数的情况，比如说用户输入一个值，然后判断这个值是否为0，如果不是0就继续执行循环
    while(条件)
        {
            //do something
        }

3、do while循环：
    适用于肯定需要执行一次的循环情况，语法结构是：
    do
    {
        //do something
    }
    while(条件);
无论后续的情况是什么样的，都会先执行一次。然后只有当中条件为真的时候，才会退出循环
*/


// 打造一个多功能菜单系统，只有用户选择到了数字0才会停止，其他情况的话都会继续执行

#include <iostream>


// 如果函数定义在最上方，那么不需要进行函数的声明了。
void show_menu(void)
{
    std::cout << "请使用菜单，详细信息见下" << std::endl;
    std::cout << "----------------------" << std::endl;

    std::cout << "0：退出菜单" << std::endl;
    std::cout << "1：话费充值" << std::endl;
    std::cout << "2：网费充值" << std::endl;
    std::cout << "3：更多选项" << std::endl;
    std::cout << "4：人工服务" << std::endl;
}

int main(void)
{
    // 定义用户输入的变量
    int user_input;
    std::cout << "请使用多功能菜单系统，如果需要退出，请输入数字0" << std::endl;

    // 主函数开始，展示一次菜单信息
    show_menu();
    // 在这里开始进行用户输入的判断，每次判断结束之后，如果不满足条件，那么就需要继续判断，直到满足条件为止
    do
    {
        std::cin >> user_input; // 无论如何都需要捕获一次用户的参数
        switch(user_input)
        {
            case 0:
                {
                    // 如果用户选择了数字0，直接跳出switch循环判断
                    std::cout << "欢迎下次使用" << std::endl;
                    break;
                }
            case 1:
                {
                    std::cout << "话费充值" << std::endl;
                }
            case 2:
                {
                    std::cout << "网费充值" << std::endl;
                }
            case 3:
                {
                    std::cout << "更多选项" << std::endl;
                }
            case 4:
                {
                    std::cout << "人工服务" << std::endl;
                }
            default:    // switch语句无论如何，最好都添加default分支，避免出现问题！！！！！！
                {
                    std::cout << "无效的参数，请重新输入" << std::endl;
                    break;
                }
        }
    }
    while(user_input != 0);

    return 0;
    
}